import {config} from "../config.js";

const tips = {
    1: '抱歉出现了一个错误',
    1005: 'appkey无效，请前往www.7yue.pro申请',
    3000: '期刊不存在'
}

export class HTTP {
    request({url, data = {}, method = 'GET'}) {
        return new Promise((resolve, reject) => {
            this._request(url, resolve, reject, data, method)
        })
    }

    _request(url, resolve, reject, data = {}, method = 'GET') {
        wx.request({
            url: config.httpUrl + url,
            method: method,
            data: data,
            header: {
                'Content-Type': 'application/json',
                'appkey': config.appkey
            },
            success: res => {
                let code = res.statusCode.toString()
                if (code.startsWith('2')) {
                    resolve(res.data)
                } else {
                    reject()
                    const error_code = res.data.error_code
                    this._shwo_error(error_code)
                }
            },
            fail: err => {
                this._shwo_error(1)
            }
        })
    }

    // 添加下划线的方法，视为私有方法
    _shwo_error(error_code) {
        if (!error_code) error_code = 1;
        const tip = tips[error_code]
        wx.showToast({
            title: tip ? tip : tips[1],
            icon: 'none'
        })
    }
}
